import Vue from 'vue'
//引入vuex
import Vuex  from 'vuex'
Vue.use(Vuex)

export default new Vuex.Store({
    //专门存放组件的共享数据
    state:{
      count:10,
      list:JSON.parse(sessionStorage.getItem("list")) || [],
      info:JSON.parse(sessionStorage.getItem("info")) || {},
      musicInfo:{},
    },
    //专门操作共享数据
    mutations:{
      //保存歌曲信息
      savemusic(state,v){
        state.musicInfo=v;
      },
      //保存用户信息
      save(state,v){
        state.info=v;
        sessionStorage.setItem("info",JSON.stringify(state.info))
      },
      add(state,a){
        state.list.some((item)=>{
          if (item.id==a.id) {
            item.count++;
            sessionStorage.setItem("list",JSON.stringify(state.list));
            return;
          }
        })
        
      },
      jian(state,a){
        state.list.some((item,index)=>{
          if (item.id==a.id) {
            if (item.count<=1) {
              state.list.splice(index,1);
            }else{
              item.count--;
            }
            sessionStorage.setItem("list",JSON.stringify(state.list));
            return;
          }
        })
        
      },
      change(state,a){
        state.list.some((item)=>{
          if (item.id==a.id) {
            if (a.count>200) {
              item.count=200
            }else{
              item.count=a.count;
            };
            sessionStorage.setItem("list",JSON.stringify(state.list));
            return;
          }
        })
      },
      addp(state,a){ 
      var flag=false;
        state.list.some((item,index,arr)=>{
          if (item.id == a.id) {
            item.count++;
            flag = true;
            return;
          }
        });
        if (!flag) {
          state.list.push(a);
        }
        sessionStorage.setItem("list",JSON.stringify(state.list));
      }
      
    },
    //专门过滤共享数据，相当于state中数据的计算属性
    getters:{
      allCount(state){
        var count=0;
        state.list.forEach((item,index,arr)=>{
          count+=item.count
        });
        return count;
      }
    }
    
  })
  
  
